<?php

class AdmListar extends TPage {

    public function onLoad($param) {
        parent::onLoad($param);
        if (!$this->IsPostBack) {
            $this->actualizarIntefaz();
        }
    }

    private function actualizarIntefaz() {
        $arg = $this->Request["a"];
        if (!Util::isNullOrEmpty($arg)) {
            $intIdTipoComentario = Util::desencriptarUrl($arg, "tipoComentario");
        } else {
            $intIdTipoComentario = "-1";
        }
        $this->setViewState("tipoComentario", $intIdTipoComentario);

        $arr = $this->obtenerDatos();
        $this->iniciarControles($arr);
        $this->mostrarMensaje();

        switch ($intIdTipoComentario) {
            case Tipo_comentario::ESCORT:
                $tipoComentario = "ESCORT";
                break;
            case Tipo_comentario::ENTREVISTA:
                $tipoComentario = "ENTREVISTA";
                break;
            case Tipo_comentario::NOTICIA:
                $tipoComentario = "NOTICIA";
                break;
            case Tipo_comentario::RELATO:
                $tipoComentario = "RELATO";
                break;
            default:
                $tipoComentario = "";
                break;
        }
        $this->ltTitulo->Text = "Comentario " . $tipoComentario;
    }

    private function obtenerDatos() {
        $tipoComentario = $this->getViewState("tipoComentario");

        $oComentario = new Comentario();
        $oComentario->setIdTipoComentario($tipoComentario);
        $oComentarioBLL = new ComentarioBLL();
        $arr = $oComentarioBLL->listar($oComentario);
        return $arr;
    }

    private function iniciarControles($arr) {
        if (count($arr) > 0) {
            $this->pnlGrilla->Visible = true;
            $this->pnlSinRegistros->Visible = false;
            $this->dgPrincipal->DataSource = $arr;
            $this->dgPrincipal->dataBind();
        } else {
            $this->pnlGrilla->Visible = false;
            $this->pnlSinRegistros->Visible = true;
        }
    }

    private function mostrarMensaje() {
        $arg = $this->Request["a"];
        if (!Util::isNullOrEmpty($arg)) {
            $tipoMensaje = Util::desencriptarUrl($arg, "tipoMensaje");
            $mensaje = Util::desencriptarUrl($arg, "mensaje");

            if (!Util::isNullOrEmpty($mensaje)) {
                Util::mostrarMsj($this->Page, "da-ex-val-error", $mensaje, $tipoMensaje);
            }
        }
    }

    public function onDataBoundDataGrid($sender, $param) {
        $tipoComentario = $this->getViewState("tipoComentario");
        $item = $param->Item;
        if ($item->ItemType === 'Item' || $item->ItemType === 'AlternatingItem') {
            $txtId = $item->findControl("txtId");
            $txtParaTitulo = $item->findControl("txtParaTitulo");
            $txtParaMensaje = $item->findControl("txtParaMensaje");
            $txtMensaje = $item->findControl("txtMensaje");
            $lblOpcion = $item->findControl("lblOpcion");
            $lblPara = $item->findControl("lblPara");
            $lblMensaje = $item->findControl("lblMensaje");

            $id = $txtId->Value;
            $arg = Util::encriptarUrl(array("id" => $id));
            $lblOpcion->Text = "<a href=\"index.php?page=Comentario.AdmRegistro&a=" . $arg . "\" title=\"Editar\"><i class=\"icol-pencil\"></i></a>&nbsp;&nbsp;";

            switch ($tipoComentario) {
                case Tipo_comentario::ESCORT:
                    $strPara = "<b>ESCORT: </b>" . $txtParaTitulo->Value . "<br/>";
                    break;
                default:
                    $strTitulo = $txtParaTitulo->Value;
                    $strContenido = $txtParaMensaje->Value;
                    $popover = Util::obtenerPopover($strTitulo, Util::reemplazarTextoPorEmoticon($strContenido), "right");
                    $strPara = "<b>TITULO: </b>" . $strTitulo . "<br/>";
                    $strPara .= "<b>CONTENIDO: </b>" . Util::reemplazarTextoPorEmoticon(Util::recortarTexto($strContenido, 100, $popover)) . "<br/>";
                    break;
            }
            $lblPara->Text = $strPara;
            $lblMensaje->Text = Util::reemplazarTextoPorEmoticon($txtMensaje->Value);

            $arrEliminar = array(
                "idRegistro" => $id,
                "urlAjax" => "Comentario.Ajax",
                "opcionAjax" => "Eliminar",
                "urlRespuesta" => "Comentario.AdmListar",
                "parametrosUrlRespuesta" => array(
                    "tipoComentario" => $tipoComentario
                )
            );
            $opcionesEliminar = Util::jsonOpcionesEliminar($arrEliminar);
            $lblOpcion->Text .= "<a href=\"#\" onclick=\"eliminarRegistro(" . $opcionesEliminar . ")\"><i class=\"icol-cross\"></i></a>";

            //limpia controles
            $txtId->Value = "";
            $txtParaTitulo->Value = "";
            $txtParaMensaje->Value = "";
            $txtMensaje->Value = "";
        }
    }

}

?>
